<?xml version="1.0"?>
<doc>
    <assembly>
        <name>XPathTool</name>
    </assembly>
    <members>
        <member name="T:XPathTool.Properties.Resources">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:XPathTool.Properties.Resources.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:XPathTool.Properties.Resources.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:XPathTool.Properties.Resources.sampleXml">
             <summary>
               Looks up a localized string similar to &lt;?xml version=&quot;1.0&quot;?&gt;
            &lt;!--  This app will suggest an XPath query by example
                    1) Paste your own XML here to replace this sample 
                  2) Highlight a node or tag
                  3) Click Suggest button
                  4) If you don&apos;t like the XPath suggested, modify it and click &apos;Evaluate&apos;
            --&gt;
            &lt;bookstore&gt;
              &lt;book&gt;
                &lt;title lang=&quot;eng&quot;&gt;Learning XML&lt;/title&gt;
                &lt;price&gt;39.95&lt;/price&gt;
              &lt;/book&gt;
            
              &lt;book&gt;
            	  &lt;title lang=&quot;eng&quot;&gt;XPath for Dummies&lt;/title&gt;
            	  &lt;price&gt;9.95&lt;/price&gt;
              &lt;/book&gt;
            &lt;/bookstore&gt;.
             </summary>
        </member>
        <member name="T:XPathTool.HelpLinks">
            <summary>
            Interaction logic for HelpLinks.xaml
            </summary>
            <summary>
            HelpLinks
            </summary>
        </member>
        <member name="M:XPathTool.HelpLinks.#ctor">
            <summary>
            Default constructor
            </summary>
        </member>
        <member name="M:XPathTool.HelpLinks._Vm_CloseLinks(System.Object,System.EventArgs)">
            <summary>
            Catches the event raised by our ViewModel to close the form
            </summary>
            <param name="sender">The ViewModel</param>
            <param name="e">Event args</param>
        </member>
        <member name="M:XPathTool.HelpLinks.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:XPathTool.Views.DeleteMe">
            <summary>
            Interaction logic for DeleteMe.xaml
            </summary>
            <summary>
            DeleteMe
            </summary>
        </member>
        <member name="M:XPathTool.Views.DeleteMe.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:XPathTool.App">
            <summary>
            App
            </summary>
        </member>
        <member name="M:XPathTool.App.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="M:XPathTool.App.Main">
            <summary>
            Application Entry Point.
            </summary>
        </member>
        <member name="T:XPathTool.AboutForm">
            <summary>
            Interaction logic for AboutForm.xaml
            </summary>
            <summary>
            AboutForm
            </summary>
        </member>
        <member name="M:XPathTool.AboutForm.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:XPathTool.Views.SampleCode">
            <summary>
            Interaction logic for SampleCode.xaml
            </summary>
            <summary>
            SampleCode
            </summary>
        </member>
        <member name="M:XPathTool.Views.SampleCode.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:XPathTool.XPathMenu">
            <summary>
            Interaction logic for XPathMenu.xaml
            </summary>
            <summary>
            XPathMenu
            </summary>
        </member>
        <member name="M:XPathTool.XPathMenu.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:XPathTool.Views.MainWindow">
            <summary>
            Code-Behind for Main Window
            </summary>
            <remarks>Most of the logic is in the ModelView class 'ModelView_MainWindow'; this
            class implements things that are difficult or impossible via MVVM</remarks>
            <summary>
            MainWindow
            </summary>
        </member>
        <member name="M:XPathTool.Views.MainWindow.txtXml_SelectionChanged(System.Object,System.Windows.RoutedEventArgs)">
            <summary>
            
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
            <remarks>
            Why is this not bound to the ModelView to implement MVVM? Answer:
            "A 'Binding' cannot be set on the 'SelectionStart' property of type 'TextBox'. 
            A 'Binding' can only be set on a DependencyProperty of a DependencyObject."
            </remarks>
        </member>
        <member name="M:XPathTool.Views.MainWindow._VM_CloseXmlForm(System.Object,System.EventArgs)">
            <summary>
            Event raised by our ModelView when user wants to close the form
            </summary>
            <param name="sender"></param>
            <param name="e"></param>
        </member>
        <member name="M:XPathTool.Views.MainWindow.InitializeComponent">
            <summary>
            InitializeComponent
            </summary>
        </member>
        <member name="T:XPathTool.QueryDescPair">
            <summary>
            Simple class holding a pair of strings representing a query and description
            </summary>
            <remarks>
            Makes it easier to display query/description pairs in a grid.
            
            INotifyPropertyChanged forces Windows to display updates.
            </remarks>
        </member>
        <member name="P:XPathTool.QueryDescPair.Query">
            <summary>
            Gets/sets the query 
            </summary>
        </member>
        <member name="P:XPathTool.QueryDescPair.Description">
            <summary>
            Get/sets the description of the query
            </summary>
        </member>
        <member name="T:XPathTool.IXPathToolVm">
            <summary>
            Interface exists to enable all my View Models to utilize CommandBase class, because
            CommandBase has an IXPathToolVM instance that it uses for inversion of control to
            execute commands.
            </summary>
            <remarks>
            <para>
            Any View Model can implement this interface because it does not have any members. The
            CommandBase class holds a generalized IXPathToolVm instance that it uses to perform
            actual execution.
            </para>
            <para>
            If I did not use this interface, CommandBase would not work for every ViewModel, or else
            it would be very weak and useless.
            </para>
            </remarks>
        </member>
        <member name="T:XPathTool.XmlHelperNodeType">
            <summary>
            The types of XML nodes we care about
            </summary>
        </member>
        <member name="T:XPathTool.XmlHelperNode">
            <summary>
            Suitable for holding/parsing an XML node with a Node Type, node name
            </summary>
        </member>
        <member name="M:XPathTool.XmlHelperNode.#ctor(System.String)">
            <summary>
            Constructor builds the class using the raw text
            </summary>
            <param name="newNodeText">The text composing the node</param>
            <remarks>The main thing is this method determines what kind of node has
            been provided to us by the callser and sets the NodeType property accordingly</remarks>
        </member>
        <member name="M:XPathTool.XmlHelperNode.ToString">
            <summary>
            Displays the node name
            </summary>
            <returns>Node name</returns>
        </member>
        <member name="P:XPathTool.XmlHelperNode.NodeType">
            <summary>
            Such as ClosingTag or Comment
            </summary>
        </member>
        <member name="P:XPathTool.XmlHelperNode.EntireTag">
            <summary>
            All the text from the opening angle bracket to the final close bracket
            </summary>
        </member>
        <member name="P:XPathTool.XmlHelperNode.NodeName">
            <summary>
            The name of the node
            </summary>
        </member>
        <member name="T:XPathTool.ViewModels.HelpLinks_ViewModel">
            <summary>
            ModelView suitable for controlling a view which displays links to help pages on the web
            </summary>
        </member>
        <member name="M:XPathTool.ViewModels.HelpLinks_ViewModel.#ctor">
            <summary>
            Default constructor builds a couple commands to expose
            </summary>
        </member>
        <member name="M:XPathTool.ViewModels.HelpLinks_ViewModel.GoLinksCommandCanExecute">
            <summary>
            user can always execute the go links command
            </summary>
            <returns></returns>
        </member>
        <member name="M:XPathTool.ViewModels.HelpLinks_ViewModel.GoLinksCommandExecute(System.String)">
            <summary>
            Fires when user clicks a link, loads users browser using the specified address
            </summary>
            <param name="uri"></param>
        </member>
        <member name="M:XPathTool.ViewModels.HelpLinks_ViewModel.CloseLinksCommandCanExecute">
            <summary>
            User can always execute the close command
            </summary>
            <returns>true</returns>
        </member>
        <member name="M:XPathTool.ViewModels.HelpLinks_ViewModel.CloseLinksCommandExecute">
            <summary>
            Fired when user wants to close the form
            </summary>
        </member>
        <member name="E:XPathTool.ViewModels.HelpLinks_ViewModel.CloseLinks">
            <summary>Event we fire when user wants to close the form</summary>
        </member>
        <member name="P:XPathTool.ViewModels.HelpLinks_ViewModel.GoLinksCommand">
            <summary>
            Publicly exposes our command for binding
            </summary>
        </member>
        <member name="P:XPathTool.ViewModels.HelpLinks_ViewModel.CloseLinksCommand">
            <summary>
            Publicly exposes our command for binding
            </summary>
        </member>
        <member name="T:XPathTool.ModelView_MainWindow">
            <summary>
            ViewModel suitable for controlling a windows WPF form that works with a user
            to display XML and get XPath queries that work with it
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.#ctor">
            <summary>
            Default constructor
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.SaveCommandCanExecute">
            <summary>
            Allow users to save if there is any XML in the textbox
            </summary>
            <returns></returns>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.NewCanExecute">
            <summary>
            Users can always make a new XML document
            </summary>
            <returns></returns>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.OpenCommandCanExecute">
            <summary>
            Users can always open a new file
            </summary>
            <returns></returns>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.SuggestCanExecute">
            <summary>
            Users can ask for a suggestion if they have somehow supplied XML and then selected
            a substring within it
            </summary>
            <returns></returns>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.FormatCommandCanExecute">
            <summary>
            Users can format their XML if it is not empty
            </summary>
            <returns></returns>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.CloseCommandCanExecute">
            <summary>
            Users can always close
            </summary>
            <returns></returns>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.ShowLinksCommandCanExecute">
            <summary>
            Users can always show the form with the links
            </summary>
            <returns></returns>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.AboutCommandCanExecute">
            <summary>
            Users can always view the about form
            </summary>
            <returns></returns>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.SaveAsCommandCanExecute">
            <summary>
            Users can save if their XML is present
            </summary>
            <returns></returns>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.SaveCommandExecute">
            <summary>
            Save users' XMl to a file name they provide
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.SaveAsCommandExecute">
            <summary>
            Save after prompting for a new file name
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.OpenCommandExecute">
            <summary>
            Opens file and displays the contents
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.NewExecute">
            <summary>
            Gets rid of old XMl, starts with fresh slate
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.EvaluateExecute">
            <summary>
            Runs users' query and puts the results into our XPathResults property
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.SuggestExecute">
            <summary>
            Attempts to generate XPATH queries that find the text selected by user
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.FormatCommandExecute">
            <summary>
            Lines-up, indents the XML entered by user
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.ShowLinksCommandExecute">
            <summary>
            Displays the form with links to XPath documentation
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.EvaluateExecute(System.String)">
            <summary>
            Runs the users' XPath query against FormattedXml and exposes the results as XPathResults
            </summary>
            <param name="inXpathQuery">Query to attempt</param>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.CloseCommandExecute">
            <summary>
            Closes the application after asking user if they want to save (when dirty)
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.AboutCommandExecute">
            <summary>
            Launches the dialog to display 'about' information
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.ValidateXml(System.String)">
            <summary>
            Attempts to validate the XML string by loading it
            </summary>
            <param name="xml">Some XML that might have an error</param>
            <returns>Empty string if valid, otherwise an error message</returns>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.SaveToFile">
            <summary>
            Writes the users' FormattedXml to file
            </summary>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.GetFileName">
            <summary>
            Prompts user to supply a name for their file to open
            </summary>
            <returns>File name if supplied, else empty</returns>
        </member>
        <member name="M:XPathTool.ModelView_MainWindow.GetSaveFileName">
            <summary>
            Prompts user for a file name to save
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.EvaluateCommand">
            <summary>
            Command fired when user evaluates some XPath
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.SuggestCommand">
            <summary>
            Fired when user wants a suggestion for XPath
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.SaveCommand">
            <summary>
            Fired by the menu item to save
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.NewCommand">
            <summary>
            Fired by the New menu item
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.OpenCommand">
            <summary>
            Fired by the menu item Open
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.CloseCommand">
            <summary>
            Fired by the menu item close
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.FormatCommand">
            <summary>
            Fired when user wants to format their XML
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.ShowLinksCommand">
            <summary>
            Fired when user wants to see the page with help links
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.AboutCommand">
            <summary>
            Fired when user wants to see the page with about information
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.SaveAsCommand">
            <summary>
            Fired when user wants to save their XML with new file name
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.FormattedXml">
            <summary>
            Gets/sets the XML user enters
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.StatusInfo">
            <summary>
            Gets/sets statusbar message
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.SelectionStart">
            <summary>
            Location within FormattedXml where usres' selected text begins
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.XPathResults">
            <summary>
            Set after user evaluates their XPath query, either 'No hits' or else the node
            which matches their query
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.SelectedXml">
            <summary>
            Represents the text within the full XML that user wishes to generate suggestions 
            for finding via Xpath query
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.XPathQuery">
            <summary>
            The query to evaluate, whether supplied by user or suggested by XmlHelper
            </summary>
        </member>
        <member name="P:XPathTool.ModelView_MainWindow.QuerySuggestions">
            <summary>
            Contains the list of suggestions
            </summary>
        </member>
        <member name="T:XPathTool.CommandBase">
            <summary>
            Base class for commands that makes some repeated code available to all inheritors
            </summary>
            <remarks>
            Every ICommand interface has a View model IXPathToolVm that is uses (inversion of control)
            to actually execute commands. This base class simplifies that design principle. Additionally,
            it implements the CanExecuteChange method for all inheritors, since this method is
            required to implement ICommand, yet it never varies
            </remarks>
        </member>
        <member name="M:XPathTool.CommandBase.#ctor(XPathTool.IXPathToolVm)">
            <summary>
            Constructor takes a view model to control and holds it
            </summary>
            <param name="newModelView">The view model that utilizes the command</param>
        </member>
        <member name="M:XPathTool.CommandBase.CanExecute(System.Object)">
            <summary>
            Returns true when the command can fire
            </summary>
            <param name="parameter">Optional parameter</param>
            <returns>True if the command can fire, otherwise false</returns>
            <remarks>
            The method is virtual because inherting classes will almost always provide their own
            implementation
            </remarks>
        </member>
        <member name="M:XPathTool.CommandBase.Execute(System.Object)">
            <summary>
            Does the actual work
            </summary>
            <param name="parameter">Optional parameter</param>
            <remarks>Virtual method that inheriting classes need to handle themselves</remarks>
        </member>
        <member name="E:XPathTool.CommandBase.CanExecuteChanged">
            <summary>
            Hooks-in to the command manager to drive the CanExecute
            </summary>
        </member>
        <member name="T:XPathTool.GoLinksCommand">
            <summary>
            Class allows user to click a hyperlink and launch the browser with the CommandParameter
            </summary>
        </member>
        <member name="M:XPathTool.GoLinksCommand.CanExecute(System.Object)">
            <summary>
            Controls whether the command is enabled
            </summary>
            <param name="parameter">Not used</param>
            <returns>Whatever the ModelView says</returns>
        </member>
        <member name="M:XPathTool.GoLinksCommand.Execute(System.Object)">
            <summary>
            Passes execution to the ModelView for implementation
            </summary>
            <param name="parameter">The URL to open</param>
        </member>
        <member name="T:XPathTool.CloseLinksCommand">
            <summary>
            Fires when user wants to close the view
            </summary>
        </member>
        <member name="T:XPathTool.XmlHelper">
            <summary>
            Provides support for parsing XML and suggestion XPath queries using selected nodes/tags
            </summary>
        </member>
        <member name="M:XPathTool.XmlHelper.GetXPathQueries(System.String,System.String,System.Int32)">
            <summary>
            The most important method in the class, it builds a number of XPath queries
            that match the selected text in the containing strng 'allXml'
            </summary>
            <param name="allXMl"></param>
            <param name="selectedText"></param>
            <param name="selectionStart"></param>
            <returns></returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:XPathTool.XmlHelper.GetNodePath(System.String,System.String,System.Int32,System.String@,System.Int32@,System.String@)" -->
        <member name="M:XPathTool.XmlHelper.RemoveMoreSpecificPaths(System.Collections.Generic.Dictionary{System.String,System.Int32},System.Collections.Generic.Stack{XPathTool.XmlHelperNode})">
            <summary>
            If user searches for a node that has peers, it causes problems when generating
            the path using the nodePathCounts, remove them here
            </summary>
            <param name="nodePathConts">Contains counts of every path encountered so far</param>
            <param name="tagStack">Every tag we have encounterd so far, excluding irrelevant paths</param>
            <remarks>
            Suppose our XML looks like this:
            BookStore
                Book
                Music
                
            When user seeks Music, we don't want Book to be used in the path, but we have entries for it
            in nodePathCounts, so here they get removed.
            </remarks>
        </member>
        <member name="M:XPathTool.XmlHelper.GetTagName(System.String,System.Int32,System.Int32,System.Int32)">
            <summary>
            Returns the name of the tag we are currently on as indicated by p
            </summary>
            <param name="allXml">The XML we are working with</param>
            <param name="selPos">Position of users' tag/node</param>
            <param name="p">Where our 'pointer' currently is parsing the XML</param>
            <param name="tagStart">Start of the tag we are in</param>
            <returns>A node name</returns>
            <example>
            If we seek the tag name 'lang within the XML substring shown:
                &lt;title lang=""eng""&gt;Learning XML&lt;/title&gt;
            Then 
                - p should indicate a position with the string 'eng'
                - selPos should indicate a position after this
                - nodeStart  should be the position just before &lt;title
                - the return value will be 'lang'
            </example>
        </member>
        <member name="M:XPathTool.XmlHelper.GetNodeVal(System.String,System.Int32)">
            <summary>
            Returns the entire node given an index to a point inside the node
            </summary>
            <param name="allXml">The XML containing the node in question</param>
            <param name="selectionStart">Index to a position within the node</param>
            <returns>The node text</returns>
            <example>
            allXml = &lt;book&gt;Learning XML&lt;/book&gt;
            selectionStart = 8
            result = "Learning XML"
            </example>
        </member>
        <member name="M:XPathTool.XmlHelper.GetNode(System.String,XPathTool.XmlHelperNode@,System.Int32@,System.Int32@)">
            <summary>
            Gets the node at the specified position p within allXml, updating tagStart to after the node
            </summary>
            <param name="allXml">The XML text to seek a tag within</param>
            <param name="aNode">Text of the node that will be returned</param>
            <param name="p">Position within the text where we start seeking</param>
            <remarks>
            If the node is a data node, it is allowed to contain angle brackets, and
            this method handles that scenario, and hopefully all other legal nodes.
            
            The node we generate is of type XmlHelperNode; that data type knows how
            to build itself from a raw sting, it also knows how to classify itself.
            </remarks>
            <example>
            If allXml = &lt;book lang="eng" &gt;Learning XML&lt;/book&gt;
            and 
            </example>
        </member>
        <member name="M:XPathTool.XmlHelper.GetPeerCount(System.String,System.String)">
            <summary>
            Gets the number of nodes within allXml that are matched by the specified path
            </summary>
            <param name="allXMl"></param>
            <param name="path"></param>
            <returns></returns>
        </member>
        <member name="T:XamlGeneratedNamespace.GeneratedInternalTypeHelper">
            <summary>
            GeneratedInternalTypeHelper
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.CreateInstance(System.Type,System.Globalization.CultureInfo)">
            <summary>
            CreateInstance
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.GetPropertyValue(System.Reflection.PropertyInfo,System.Object,System.Globalization.CultureInfo)">
            <summary>
            GetPropertyValue
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.SetPropertyValue(System.Reflection.PropertyInfo,System.Object,System.Object,System.Globalization.CultureInfo)">
            <summary>
            SetPropertyValue
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.CreateDelegate(System.Type,System.Object,System.String)">
            <summary>
            CreateDelegate
            </summary>
        </member>
        <member name="M:XamlGeneratedNamespace.GeneratedInternalTypeHelper.AddEventHandler(System.Reflection.EventInfo,System.Object,System.Delegate)">
            <summary>
            AddEventHandler
            </summary>
        </member>
    </members>
</doc>
